//TODO 25/6/04
/*
字符串就是一串固定长度的字符连接起来的字符序列。  一段中文或者英文 （编码- 字符）
Go语言中，所有的字符串都是由单个 字符 连接起来的。兼容全世界文字的
> 拓展：了解编码表
UTF-8编码 ， 目前兼容我们绝大部分的文字和符号。
GBK编码：中国的编码表，号称兼容所有的中文汉字。
Unicode编码表 ：号称兼容了全世界的文字。
编码  中   本质是一个数字

*/
package main

import "fmt"

func main1() {
	var str string
	str = "Hello,World" //字符串
	fmt.Printf("%T,%s\n", str, str)
	// H E L L O , W O R L D
	// Go语言中，所有的字符串都是由单个 字符 连接起来的。
	// 单引号是字符、双引号才是 string 类型
	// 字符本质是整型
	v1 := 'A'
	v2 := "A"
	fmt.Printf("%T,%d\n", v1, v1) //打印的是acsii码值的数字
	fmt.Printf("%T,%s\n", v2, v2)

	v3 := '魑'
	fmt.Printf("%T,%d\n", v3, v3)
	var v4 byte = 's'
	fmt.Println(v4)
	//通过打印我们可以看到了‘s'的值就是一个数字，所以字符就是数字，而不是字符串
}

// 转移字符
func main2() {
	// 特殊的字符 转义字符 \n
	// \n 还表示换行
	fmt.Println("hello\nworld")
	// \b   backspace  删除上一个字符
	fmt.Println("hello\bworld")
	// \t  Tab
	fmt.Println("hello\tworld")
}

// 多行输入
func main() {
	// 特殊的字符 转义字符 \n
	// \n 换行
	fmt.Println("hello\nworld")
	// \b   backspace  删除上一个字符
	fmt.Println("hello\bworld")
	// \t  Tab
	fmt.Println("hello\tworld")

	// 转义，就是可以将特殊转义符号或者一些符号打印出来 \

	// ` ` 可以通过它来定义一些长字符串，可以换行输入
	fmt.Println(`\\n
        sadad
        asd
        a
        sd
        asda
        sd
        asda`)
	var v string = `I
	l
	o
	v
	e

	y
	o
	u`
	fmt.Println(v)
}
